package org.example.config;

import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.rag.content.retriever.ContentRetriever;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.store.embedding.EmbeddingStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Agent配置类，用于配置RAG（检索增强生成）相关的组件
 */
@Configuration
public class AgentConfig {

    @Autowired
    private EmbeddingModel embeddingModel;
    @Autowired
    private EmbeddingStore embeddingStore;

    /**
     * 创建内容检索器Bean，用于从嵌入存储中检索相关内容
     *
     * @return ContentRetriever 内容检索器实例
     */
    @Bean
    ContentRetriever contentRetriever(){
        // 构建基于嵌入存储的内容检索器，配置最大返回结果数为1，最小匹配分数为0.8
        return EmbeddingStoreContentRetriever.builder().
                embeddingModel(embeddingModel)
                .embeddingStore(embeddingStore)
                .maxResults(1).
                minScore(0.8).build();
    }

}

